package com.song.user.service;

import com.song.enums.Sex;
import com.song.pojo.vo.FansCountsVO;
import com.song.pojo.vo.RegionRatioVO;
import com.song.utils.PagedGridResult;

import java.util.List;

public interface MyFansService {


    /**
     * 被动更新粉丝用户信息
     * @param relationId
     * @param fanId
     * @return
     */
    public void forceUpdateFanInfo(String relationId, String fanId);

    /**
     * 查询当前用户是否关注作家
     * @param writerId
     * @param fanId
     * @return
     */
    public Boolean isMeFollowThisWriter(String writerId, String fanId);

    /**
     * 关注作家，成为粉丝
     * @param writerId
     * @param fanId
     * @return
     */
    public void follow(String writerId, String fanId);

    /**
     * 取消关注作家
     * @param writerId
     * @param fanId
     * @return
     */
    public void unfollow(String writerId, String fanId);

    /**
     * 查询所有粉丝列表
     * @param writerId
     * @param page
     * @param pageSize
     * @return
     */
    public PagedGridResult queryAllFansList(String writerId, Integer page, Integer pageSize);

    /**
     * es中查询所有粉丝列表
     * @param writerId
     * @param page
     * @param pageSize
     * @return
     */
    public PagedGridResult queryAllFansESList(String writerId, Integer page, Integer pageSize);
    /**
     * 查询男女粉丝数量
     */
    public Integer queryFansCounts(String writerId, Sex sex);
    public FansCountsVO queryFansESCounts(String writerId);

    /**
     * 查询每个地域的粉丝数量
     */
    public List<RegionRatioVO> queryRatioByRegionCounts(String writerId);
    public List<RegionRatioVO> queryRatioByRegionESCounts(String writerId);



}
